package weekseven;

class Student{
	static final String schoolName;//校名，静态成员变量
	String name;//姓名
	int age;//年龄
	{
		//动态代码块，每创建一个对象时均会执行
		name="李寻欢";
		age=28;
	}
	static {
		//静态代码块，第一次使用类时才会执行，而且只会执行一次
		schoolName="江西科技师范大学";
		System.out.println("Student类的静态代码块被执行");
	}
	public Student() {
	}
	public Student(String name,int age) {
		this.name=name;
		this.age=age;
	}
	public void show() {
		System.out.printf("学校：%s\t 姓名：%s\t 年龄：%d\n",schoolName,name,age);
	}
	public static String getschoolName() {
		return schoolName;
	}
}
public class TestStudent2 {
	public static void main(String[] args) {
		//通过“类名.变量名”直接调用静态成员变量
		System.out.println("调用Student.schoolName的结果:"+Student.schoolName);
		//通过“类名.方法名”直接调用静态方法
		System.out.println("调用Student.getschoolName()的结果"+Student.getschoolName());
		//Student.schoolName="江西科技师范大学";(错误)     schoolName为最终变量（常量）
		//student.show();（错误）   show（）为普通成员变量，不能通过类名直接调用
		System.out.println("--------------------------------------------------------");
		Student stu1=new Student();
		//通过“类名.方法名”直接调用静态方法
		System.out.println("调用stu1.getschoolName()的结果"+stu1.getschoolName());
		stu1.show();//普通方法只能通过“对象名.方法名”的方式调用
		Student stu2=new Student("张三丰",20);
		//通过“对象名.方法名”直接调用静态方法
		System.out.println("调用stu2.getschoolName()的结果"+stu2.getschoolName());
		stu2.show();//普通方法只能通过“对象名.方法名”的方式调用
	}
}	                                                             











